<!DOCTYPE html>
<html lang="fr">
    <head>
        <meta charset="utf-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
        <title>git - petit guide - no deep shit!</title>
        <link href='http://fonts.googleapis.com/css?family=Chelsea+Market' rel='stylesheet' type='text/css'>
        <link rel="stylesheet" href="//cdnjs.cloudflare.com/ajax/libs/normalize/0/normalize.min.css" type="text/css">
        <link rel="stylesheet" href="css/style.css" type="text/css">
        <script type="text/javascript">
            var _gaq = _gaq || [];
            _gaq.push(['_setAccount', 'UA-652147-13']);
            _gaq.push(['_trackPageview']);

            (function() {
                var ga = document.createElement('script');
                ga.type = 'text/javascript';
                ga.async = true;
                ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
                var s = document.getElementsByTagName('script')[0];
                s.parentNode.insertBefore(ga, s);
            })();
            function recordOutboundLink(link, category, action) {
                _gat._getTrackerByName()._trackEvent(category, action);
                setTimeout('document.location = "' + link.href + '"', 100);
            }
        </script>
    </head>
    <body>
        <div class="scrollblock block-title">
            <h1>git - petit guide</h1>
            <p>juste un petit guide pour bien d&eacute;marrer avec git. <!-- UNTRANSLATED -->no deep shit ;)</p>
            <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://rogerdudler.github.com/git-guide" data-via="rogerdudler" data-size="large" data-related="rogerdudler" data-hashtags="git">Tweet</a>
            <script>!function(d, s, id) {
                    var js, fjs = d.getElementsByTagName(s)[0];
                    if (!d.getElementById(id)) {
                        js = d.createElement(s);
                        js.id = id;
                        js.src = "//platform.twitter.com/widgets.js";
                        fjs.parentNode.insertBefore(js, fjs);
                    }
                }(document, "script", "twitter-wjs");</script>
            <p class="meta">
                par <a href="http://www.twitter.com/rogerdudler">Roger Dudler</a> (translation by <a href="https://github.com/KokaKiwi">KokaKiwi</a>)
                <br />Remerciements &agrave; <a href="http://www.twitter.com/tfnico">@tfnico</a>, <a href="http://www.twitter.com/fhd">@fhd</a>, <a href="http://www.namics.com">Namics</a><br />
                this guide in
                <a href="index.html">english</a>,
                <a href="index.de.html">deutsch</a>,
                <a href="index.es.html">español</a>,
                <a href="index.id.html">indonesian</a>,
                <a href="index.it.html">italiano</a>,
                <a href="index.nl.html">nederlands</a>,
                <a href="index.pl.html">polski</a>,
                <a href="index.pt_BR.html">português</a>,
                <a href="index.ru.html">русский</a>,
                <a href="index.tr.html">türkçe</a>,
                <br/>
                <a href="index.my.html">မြန်မာ</a>,
                <a href="index.ja.html">日本語</a>,
                <a href="index.zh.html">中文</a>,
                <a href="index.ko.html">한국어</a>
                <br />
            </p>
            <img src="img/arrow.png" alt="" />
        </div>
        <!-- setup -->
        <a name="setup"></a>
        <div class="scrollblock block-setup">
            <h2>installation</h2>
            <p>
                <a href="http://git-scm.com/download/mac">T&eacute;l&eacute;charger git pour Mac OSX</a>
            </p>
            <p>
                <a href="http://msysgit.github.io/">T&eacute;l&eacute;charger git pour Windows</a>
            </p>
            <p>
                <a href="http://book.git-scm.com/2_installing_git.html">T&eacute;l&eacute;charger git pour Linux</a>
            </p>
        </div>
        <a name="create"></a>
        <div class="scrollblock block-create">
            <h2>cr&eacute;er un nouveau d&eacute;p&ocirc;t</h2>
            <p>
                cr&eacute;ez un nouveau dossier, ouvrez le et ex&eacute;cutez la commande<br />
                <code>git init</code><br />
                pour cr&eacute;er un nouveau d&eacute;p&ocirc;t.
            </p>
        </div>
        <a name="checkout"></a>
        <div class="scrollblock block-checkout">
            <h2>cloner un d&eacute;p&ocirc;t</h2>
            <p>
                cr&eacute;ez une copie de votre d&eacute;p&ocirc;t local en ex&eacute;cutant la commande<br />
                <code>git clone /path/to/repository</code><br />
                si vous utilisez un serveur distant, cette commande sera<br />
                <code>git clone username@host:/path/to/repository</code>
            </p>
        </div>
        <a name="trees"></a>
        <div class="scrollblock block-trees">
            <h2>arbres</h2>
            <p>
                votre d&eacute;p&ocirc;t local est compos&eacute; de trois &quot;arbres&quot; g&eacute;r&eacute;s par git.
                le premier est votre <code>espace de travail</code> qui contient réellement vos fichiers.
                le second est un <code>Index</code> qui joue un r&ocirc;le d'espace de transit pour vos fichiers et
                enfin <code>HEAD</code> qui pointe vers la derni&egrave;re validation que vous ayez faite.
            </p>
            <img src="img/trees.png" alt="" />
        </div>
        <a name="add"></a>
        <div class="scrollblock block-add">
            <h2>ajouter &amp; valider</h2>
            <p>
                Vous pouvez proposer un changement (l'ajouter &agrave; l'<b>Index</b>) en ex&eacute;cutant les commandes<br />
                <code>git add &lt;filename&gt;</code><br />
                <code>git add *</code><br />
                C'est la premi&egrave;re &eacute;tape dans un workflow git basique. Pour valider ces changements, utilisez<br />
                <code>git commit -m "Message de validation"</code><br />
                Le fichier est donc ajout&eacute; au <b>HEAD</b>, mais pas encore dans votre d&eacute;p&ocirc;t distant.
            </p>
        </div>
        <a name="push"></a>
        <div class="scrollblock block-remote">
            <h2>envoyer des changements</h2>
            <p>
                Vos changements sont maintenant dans le <b>HEAD</b> de la copie de votre d&eacute;p&ocirc;t local. Pour les envoyer &agrave; votre d&eacute;p&ocirc;t distant, ex&eacute;cutez la commande<br />
                <code>git push origin master</code><br />
                Remplacez <i>master</i> par la branche dans laquelle vous souhaitez envoyer vos changements.
                <br /><br />
                Si vous n'avez pas clon&eacute; votre d&eacute;p&ocirc;t existant et voulez le connecter &agrave; votre d&eacute;p&ocirc;t sur un serveur distant, vous devez l'ajouter avec<br />
                <code>git remote add origin &lt;server&gt;</code><br />
                Maintenant, vous pouvez envoyer vos changements vers le serveur distant s&eacute;lectionn&eacute;<br />

            </p>
        </div>
        <a name="branching"></a>
        <div class="scrollblock block-branching">
            <h2>branches</h2>
            <p>
                Les branches sont utilis&eacute;es pour d&eacute;velopper des fonctionnalit&eacute;s isol&eacute;es des autres.
                La branche <i>master</i> est la branche par d&eacute;faut quand vous cr&eacute;ez un d&eacute;p&ocirc;t.
                Utilisez les autres branches pour le d&eacute;veloppement et fusionnez ensuite &agrave; la branche principale quand vous avez fini.
            </p>
            <img src="img/branches.png" alt="" />
            <p>
                cr&eacute;er une nouvelle branche nomm&eacute;e &quot;feature_x&quot; et <!-- BAD TRANSLATE -->passer dessus pour l'utiliser<br />
                <code>git checkout -b feature_x</code><br />
                retourner sur la branche principale<br />
                <code>git checkout master</code><br />
                et supprimer la branche<br />
                <code>git branch -d feature_x</code><br />
                une branche n'est <i>pas disponible pour les autres</i> tant que vous ne l'aurez pas envoy&eacute;e vers votre d&eacute;p&ocirc;t distant<br />
                <code>git push origin &lt;branch&gt;</code>
            </p>
        </div>
        <a name="update"></a>
        <div class="scrollblock block-merging">
            <h2>mettre &agrave; jour &amp; fusionner</h2>
            <p>
                pour mettre &agrave; jour votre d&eacute;p&ocirc;t local vers les derni&egrave;res validations, ex&eacute;cutez la commande<br />
                <code>git pull</code><br />
                dans votre espace de travail pour <i>r&eacute;cup&eacute;rer</i> et <i>fusionner</i> les changements distants.<br />
                pour fusionner une autre branche avec la branche active (par exemple master), utilisez<br />
                <code>git merge &lt;branch&gt;</code><br />
                dans les deux cas, git tente d'auto-fusionner les changements. Malheureusement, &ccedil;a n'est pas toujours possible et r&eacute;sulte par des <i>conflits</i>.
                Vous devez alors r&eacute;gler ces <i>conflits</i>
                manuellement en &eacute;ditant les fichiers indiqu&eacute;s par git. Apr&egrave;s l'avoir fait, vous devez les marquer comme fusionn&eacute;s avec<br />
                <code>git add &lt;filename&gt;</code><br />
                apr&egrave;s avoir fusionn&eacute; les changements, vous pouvez en avoir un aper&ccedil;u en utilisant<br />
                <code>git diff &lt;source_branch&gt; &lt;target_branch&gt;</code>
            </p>
        </div>
        <a name="tagging"></a>
        <div class="scrollblock block-tagging">
            <h2>tags</h2>
            <p>
                il est recommand&eacute; de cr&eacute;er des tags pour les releases de programmes. c'est un concept connu, qui existe aussi dans SVN. Vous pouvez cr&eacute;er un tag nomm&eacute; <i>1.0.0</i> en ex&eacute;cutant la commande<br />
                <code>git tag 1.0.0 1b2e1d63ff</code><br />
                le <i>1b2e1d63ff</i> d&eacute;signe les 10 premiers caract&egrave;res de l'identifiant du changement que vous voulez r&eacute;f&eacute;rencer avec ce tag. Vous pouvez obtenir cet identifiant avec <br />
                <code>git log</code><br />
                vous pouvez utiliser moins de caract&egrave;res de cet identifiant, il doit juste rester unique.
            </p>
        </div>
        <a name="checkout-replace"></a>
        <div class="scrollblock block-checkout-replace">
            <h2>remplacer les changements locaux</h2>
            <p>
                Dans le cas o&ugrave; vous auriez fait quelque chose de travers (ce qui bien entendu n'arrive jamais ;) vous pouvez annuler les changements locaux en utilisant cette commande<br />
                <code>git checkout -- &lt;filename&gt;</code><br />
                cela remplacera les changements dans votre arbre de travail avec le dernier contenu du HEAD. Les changements d&eacute;j&agrave; ajout&eacute;s &agrave; l'index, aussi bien les nouveaux fichiers, seront gard&eacute;s.
            </p>
            <p>
                Si &agrave; la place vous voulez supprimer tous les changements et validations locaux, r&eacute;cup&eacute;rez le dernier historique depuis le serveur et pointez la branche principale locale dessus comme ceci<br />
                <code>git fetch origin</code><br />
                <code>git reset --hard origin/master</code>
            </p>
        </div>
        <a name="hints"></a>
        <div class="scrollblock block-hints">
            <h2>conseils utiles</h2>
            <p>
                Interface git incluse<br />
                <code>gitk</code><br />
                utiliser des couleurs dans la sortie de git<br />
                <code>git config color.ui true</code><br />
                afficher le journal sur une seule ligne pour chaque validation<br />
                <code>git config format.pretty oneline</code><br />
                utiliser l'ajout interactif<br />
                <code>git add -i</code>
            </p>
        </div>
        <a name="resources"></a>
        <div class="scrollblock block-resources">
            <h2>liens et ressources</h2>
            <h3>clients graphiques</h3>
            <p>
                <ul>
                    <li><a href="http://gitx.laullon.com/">GitX (L) (OSX, open source)</a></li>
                    <li><a href="http://www.git-tower.com/">Tower (OSX)</a></li>
                    <li><a href="http://www.sourcetreeapp.com/">Source Tree (OSX, free)</a></li>
                    <li><a href="http://mac.github.com/">GitHub for Mac (OSX, free)</a></li>
                    <li><a href="https://itunes.apple.com/gb/app/gitbox/id403388357?mt=12">GitBox (OSX)</a></li>
                    <li><a href="https://code.google.com/p/gitextensions/">Git Extensions (WIN, open source)</a></li>
                </ul>
            </p>
        <h3>guides</h3>
        <p>
            <ul>
                <li><a href="http://book.git-scm.com/">Git Community Book</a></li>
                <li><a href="http://progit.org/book/">Pro Git</a></li>
                <li><a href="http://think-like-a-git.net/">Think like a git</a></li>
                <li><a href="http://help.github.com/">GitHub Help</a></li>
                <li><a href="http://marklodato.github.com/visual-git-guide/index-en.html">A Visual Git Guide</a></li>
            </ul>
        </p>
</div>
<div class="announcement">
    <a href="http://frontify.com/?utm_source=gitguide&amp;utm_campaign=founder">
        <img src="http://d13bhd1byokz0o.cloudfront.net/ad/clarify-announcement-git@2x.png" width="960" height="100" alt="Clarify" />
    </a>
</div>
<a name="comments"></a>
<div class="scrollblock block-comments">
    <h2>commentaires</h2>
    <div id="disqus_thread"></div>
    <script type="text/javascript">
        /* * * CONFIGURATION VARIABLES: EDIT BEFORE PASTING INTO YOUR WEBPAGE * * */
        var disqus_shortname = 'git-the-simple-guide'; // required: replace example with your forum shortname

        /* * * DON'T EDIT BELOW THIS LINE * * */
        (function() {
            var dsq = document.createElement('script');
            dsq.type = 'text/javascript';
            dsq.async = true;
            dsq.src = '//' + disqus_shortname + '.disqus.com/embed.js';
            (document.getElementsByTagName('head')[0] || document.getElementsByTagName('body')[0]).appendChild(dsq);
        })();
    </script>
    <noscript>Please enable JavaScript to view the <a href="http://disqus.com/?ref_noscript">comments powered by Disqus.</a></noscript>
</div>
<a href="http://www.git-tower.com/?source=rd" onClick="recordOutboundLink(this, 'Outbound Links', 'git-tower.com'); return false;" class="tower"></a>
<a href="files/git_cheat_sheet.pdf" onClick="recordOutboundLink(this, 'Cheat Sheet', 'git-guide'); return false;" class="cheatsheet"></a>
</body>
</html>
